
#ifndef TRACE_H

#define TRACE_H

#ifdef TRACE

#include <stdio.h>

class Trace
{
public:
	Trace();
	~Trace();
	void ReportEntry(char * str);
	void ReportExit(char * str);
	
	void ReportLine(char * str);

	void ReportValue(char * str, bool var);
	void ReportValue(char * str, int var);
	void ReportValue(char * str, char var);
	void ReportValue(char * str, char * var);
	void ReportValue(char * str, const char * var);
	void ReportValue(char * str, float var);
	void ReportValue(char * str, double var);
	void ReportValue(char * str, long var);
	void ReportValue(char * str, short var);

private:
	FILE * traceFile;
	int indentation;

	void printLine(char * str);
	
};

#endif

#endif
